msg_tool\scripts\kirikiri\archive\xp3/
consts.rs

1/// XP3 file header signature: `XP3\r\n \n\x1a\x8b\x67\x01`
2pub const XP3_MAGIC: &[u8; 11] = b"XP3\r\n \n\x1a\x8b\x67\x01";
3
4// Chunk names
5pub const CHUNK_FILE: &[u8; 4] = b"File";
6pub const CHUNK_INFO: &[u8; 4] = b"info";
7pub const CHUNK_SEGM: &[u8; 4] = b"segm";
8pub const CHUNK_ADLR: &[u8; 4] = b"adlr";
9pub const CHUNK_HNFN: &[u8; 4] = b"hnfn";
10pub const CHUNK_TIME: &[u8; 4] = b"time";
11pub const CHUNK_SMIL: &[u8; 4] = b"smil";
12pub const CHUNK_ELIF: &[u8; 4] = b"eliF";
13pub const CHUNK_YUZU: &[u8; 4] = b"Yuzu";
14
15// Index entry flags
16pub const TVP_XP3_INDEX_ENCODE_METHOD_MASK: u8 = 0x07;
17pub const TVP_XP3_INDEX_ENCODE_RAW: u8 = 0;
18pub const TVP_XP3_INDEX_ENCODE_ZLIB: u8 = 1;
19pub const TVP_XP3_INDEX_CONTINUE: u8 = 0x80;
20
21// File entry flags
22pub const TVP_XP3_FILE_PROTECTED: u32 = 1 << 31;
23
24// Segment entry flags
25pub const TVP_XP3_SEGM_ENCODE_METHOD_MASK: u32 = 0x07;
26pub const TVP_XP3_SEGM_ENCODE_RAW: u32 = 0;
27pub const TVP_XP3_SEGM_ENCODE_ZLIB: u32 = 1;
28
29pub const TVP_XP3_CURRENT_HEADER_VERSION: u64 = 0x17;
30
31pub const ZSTD_SIGNATURE: &[u8; 4] = b"\x28\xb5\x2f\xfd";